چرا nginx بهترین دوست میزبان وردپرس است
چرا nginx بهترین دوست میزبان وردپرس است
در مقاله قبلی خود بررسی کردم که چرا PHP7 راهی برای وردپرس است و در مقاله امروز نوبت وب سرور است.
بخش بزرگی از تجربه میزبانی خوب نحوه پیکربندی پشته وب سرور است. داشتن یک پشته سریع برای عملکرد خوب وردپرس و تجربه کاربری عالی بسیار مهم است. من قبلاً بحث کرده ام که چرا PHP7 راه خوبی برای بهبود خودکار عملکرد وردپرس است، اما در مورد وب سرور واقعی چطور؟
امروز می خواهم توضیح دهم: وب سرور چیست، محبوب ترین آنها چیست و چرا nginx بسیار خوب است!
وب سرور
یکی از مهمترین جنبه های میزبانی، وب سرور واقعی است. وب سرور مسئول ارائه محتوای ثابت مانند HTML و ارسال آن به مشتری است (یعنی مستقیماً در مرورگر شما). بنابراین سرور وب همچنین مسئول پردازش تمام اطلاعاتی است که از طریق پردازنده PHP میآید و آنها را به بیتهایی تبدیل میکند که از طریق شبکه به مرورگر شما منتقل میشوند. پشته وب سرور با مدل سرویس گیرنده / سرور کار می کند که در آن وب سرور به عنوان یک سرور (ارائه دهنده محتوا) و مشتری (شما) کسی که آن را درخواست می کند، عمل می کند.
متداول ترین وب سرورها Apache، IIS از مایکروسافت و البته nginx هستند.
وب سرور قادر است هر دو محتوای ایستا و پویا را که با کمی تفاوت برای مشتری ارسال می شود، مدیریت کند. بخش سرور در فرآیندی که کارگر نامیده میشود در حافظه بارگیری میشود و مسئول ارائه محتوای درخواستی است. هم آپاچی و هم nginx محتوای استاتیک و پویا را مدیریت می کنند. در حالی که آپاچی میتواند هر دو را در یک فرآیند کارگر مدیریت کند، nginx این کار را نمیکند زیرا برای انجام آن به یک پردازنده خارجی نیاز دارد.
چرا آپاچی و nginx اینقدر محبوب هستند؟ پاسخ ساده این است که آنها منبع باز و رایگان هستند. آنها با هم تقریباً 50٪ از کل ترافیک جهان را تشکیل می دهند، یک شاهکار آسان نیست!
آپاچی چیست؟
سرور HTTP Apache توسط رابرت مک کول در سال 1995 ایجاد شد و هنوز در حال توسعه است. تحت بنیاد نرم افزار آپاچی این وب سرور از سال 1996 محبوب ترین انتخاب بوده است. از نظر طراحی بسیار ماژولار است، مستندات زیادی دارد و آنقدر محبوب است که اساس همه کنترل پنل های میزبانی وب اصلی است. حتی در cPanel، پرکاربردترین کنترل پنل در جهان، گنجانده شده است.
البته انعطافپذیر است، این بهانهای است که اکثریت قریب به اتفاق افرادی که از آن استفاده میکنند در صورت درخواست به آن میرسند و به طور کلی، این درست است. همچنین بسیار توسعه پذیر است و از آنجایی که می تواند ماژول ها را به صورت پویا بارگیری کند (چیزی که nginx هنوز روی آن کار می کند) می تواند به راحتی پیکربندی شود.
Apache میتواند محتوای استاتیک و پویا را به تنهایی در یک کارگر مدیریت کند، بنابراین برای انعطافپذیری آن عالی است، اما (و همیشه اما وجود دارد) این کار را به قیمت عملکرد انجام میدهد.
آپاچی به خاطر کند بودن شهرت دارد، اما هیچ چیزی مانند زمانی که nginx محبوب شد، به افشای این حقیقت نزدیک نشد. تفاوت عملکرد بین آنها چیزی است که نمی توان نادیده گرفت. تنها برای این موضوع، اکثر شرکت های بزرگ به nginx روی می آورند. با وجود اینکه آپاچی همچنان محبوب است، اما مطمئناً در آینده همه چیز تغییر خواهد کرد، زیرا فناوری به سرعت پیش میرود و نرمافزارهای بیشتری که قبلاً فقط روی آپاچی کار میکردند، شامل nginx میشوند.
در مورد Nginx چطور؟
Nginx از مادر روسیه می آید. در سال 2002 یک برنامه نویس به نام ایگور سیسویف شروع به کار بر روی nginx کرد زیرا عمیقاً نگران مشکل C10K بود. چه؟ به بیان ساده، بهینه سازی سوکت های شبکه برای مدیریت تعداد زیادی از مشتریان در همان زمان که نقطه ضعف اصلی آپاچی و یک چالش واقعی برای وب مدرن بود. انتشار اولیه nginx در سال 2004 بر اساس یک معماری رویداد محور عمومی شد.
حتی خود سیسویف هم نمیتوانست متوجه شود که nginx چقدر موفقیت خواهد داشت. مزایای فوق العاده سرعت تحت nginx و استفاده کم از منابع با گذشت زمان آشکار شد. Nginx روشی عالی برای ارائه محتوای ثابت دارد، اما نمیتواند محتوای پویا را مدیریت کند. همچنین ثابت شد که این یک مزیت است زیرا محتوای پویا به همان کارگر محدود نمیشود و بنابراین، میتواند بسیار سریعتر کار کند.
Nginx در ارائه محتوای سریعتر با حجم بسیار بالاتری از اتصالات نسبت به Apache برتری دارد و در حال حاضر گزینهای برای خدمات میزبانی است که میخواهند بهترین عملکرد ممکن را ارائه دهند. معماری رویداد محور و ماهیت ناهمزمان آن نکات اصلی عملکرد آن هستند.
در ابتدا nginx یک ایراد اصلی داشت و آن مستندسازی است. به دلیل روسی بودن برنامه نویس و نحوه مستندسازی عملکردهای آن، شروع سختی داشت. اما با گذشت زمان و تعداد بیشتری از افراد از nginx استفاده میکنند، اسناد و مدارک بسیار بهبود یافته است.
عیب دیگر nginx عدم طراحی ماژولار آن است که به این معنی است که نمیتواند قوانین را در زمان واقعی پردازش کند مانند آپاچی که با فایل htaccess. انجام میدهد و نمیتواند ماژولها را در زمان واقعی بارگیری کند. این چیزی است که nginx در حال حاضر روی آن کار میکند، اما همچنان به زمان نیاز دارد تا با انعطافپذیری آپاچی مطابقت داشته باشد.
با این وجود، ایرادات به سرعت تحت الشعاع عملکرد عالی قرار می گیرند. این به خودی خود به nginx این امکان را داده است که به انتخاب محبوبی برای میزبانی عملکرد گرا تبدیل شود و مبنایی برای سرویسی است که به طور گسترده ای مانند Steam استفاده می شود و بارها و بارها ثابت می کند که می تواند به طور مداوم از هر نظر امتیاز بالاتری نسبت به Apache داشته باشد. .
چرا Nginx انتخاب ترجیحی برای میزبانی وردپرس است؟
چندین نکته وجود دارد که در آنها nginx برای میزبانی سایت های وردپرسی به مراتب بهتر از Apache است. من سعی می کنم این را در لیست زیر خلاصه کنم.
نصب آسان
Nginx یک بسته کامل است، برای کار کردن به ماژولهای خارجی بسیار کمی نیاز دارد و در اکثر مواقع فقط یک خط در لینوکس برای فعال کردن آن لازم است.
apt-get install nginx
yum install nginx
فقط کافی است تا nginx به عنوان یک سرویس فعال باشد. بقیه در پیکربندی است.
می تواند به عنوان یک پروکسی برای Apache یا هر وب سرور دیگری کار کند
Nginx میتواند با اجرای بهعنوان یک پروکسی، بدون اینکه به هیچ وجه بر عملکرد سرور تأثیر بگذارد، عملکرد آنی را برای هر پیکربندی وبسرور آپاچی افزایش دهد.
میتواند مستقیماً با حافظه پنهان یا حتی کش fastcgi کار کند
Nginx به دلیل تعبیهشده در microcache عالی است و حتی میتواند با یک کش fastcgi کار کند تا سرعت عملکرد را تا ضریب 10 افزایش دهد. به یک مکانیسم کش خارجی مانند memcache نیاز دارید.
برای ارائه محتوا فوق العاده سریع است
Nginx هنگام برخورد با محتوای استاتیک سریع روشن می شود و پیکربندی آن برای چنین اهدافی بسیار آسان است. یک خط کد می تواند دسترسی به رایج ترین فایل ها مانند محتوای استاتیک را فعال کند و عملکرد آن را بهبود بخشد. بهعلاوه، اگر میدانید که چگونه HttpProxyModule را پیکربندی کنید، حتی میتوانید به همان سطح عملکرد برای محتوای پویا بدون تأثیر بر عملکرد وبسرور دست پیدا کنید.
تقریباً 4 برابر بیشتر از Apache اتصالات همزمان
اگر در نظر دارید یک وب سایت با تقاضای بسیار بالا با هزاران بازدید در روز میزبانی کنید، خوب است بدانید که nginx می تواند تا چهار برابر Apache اتصالات همزمان را پردازش کند، یعنی 2. چیزها:
- به طور کلی وب سایت شما سریعتر خواهد بود
- برای انجام این کار به منابع کمتری نسبت به آپاچی نیاز خواهید داشت.
این به دلیل ماهیت رویداد محور nginx است و مسئولیت مزیت بعدی را بر عهده دارد.
بسیار سبک
Nginx آنقدر خوب ساخته شده است که از نظر منابع بسیار سبک وزن است. این بدان معناست که برای پردازش هر درخواست اتصال از زمان CPU کمتر استفاده میکند و این کار را با استفاده از حافظه بسیار کمتر انجام میدهد. این به شما امکان می دهد با استفاده از همان سروری که قبلاً قادر به انجام این کار در آپاچی نبودند، سایت های بزرگتری را میزبانی کنید.
راز موفقیت آن در خود موتور است. Nginx بهعنوان یک وبسرور راهاندازی رویداد کار میکند، به این معنی که «رویدادها» را به کارگر گوش میدهد و تنها در صورت نیاز پاسخ میدهد. آرگومان ondemand در داخل nginx به سرویس اجازه میدهد تا شنوندگان را در صورت تقاضا ایجاد و حذف کند. این به کاهش استفاده از حافظه و افزایش کارایی کمک می کند. Apache سعی کرد یک حالت رویداد را در mpm-event worker قرار دهد، اما در مطابقت با سرعت nginx بهشدت شکست خورد، زیرا آپاچی بهعنوان یک وبسرور رویداد محور ساخته نشده بود.
می تواند Load Balance را انجام دهد
Nginx را میتوان برای تعادل بار پیکربندی کرد، بنابراین، با توزیع بار بین چندین سرور، نرخ اتصالات همزمان آن را حتی بیشتر افزایش میدهد و آن را برای پروژههایی که دارای بار بسیار بالایی از اتصالات همزمان هستند ایدهآل میکند.
این همه به چه معناست؟
به این معنی است که nginx تقریباً از هر نظر برای وردپرس ایدهآل است. این بدان معناست که تقریباً بلافاصله پس از اجرا از مزایای استفاده از آن بهره مند خواهید شد. اگر شما یک مدیر سیستم هستید، نصب nginx کار ساده ای نیست. اگر برعکس میخواهید پروژهای طراحی کنید یا وبسایت خود را میزبانی کنید و میخواهید آن را در جای دیگری میزبانی کنید، این احتمال وجود دارد که اگر هاست شما از nginx استفاده کند، سریعتر کار کند.
شرکتهای میزبانی با کیفیت بالا مانند WP Engine و < a href="https://www.wpexplorer.com/out/flywheel" target="_blank" rel="nofollow noopener">Flywheel قبلاً روی nginx اجرا میشود. اما اگر قصد دارید با یک شرکت میزبان متفاوت بروید، تحقیق خود را انجام دهید یا از یک پشتیبانی فنی بپرسید که آیا پشته وب سرور شامل nginx است. من می توانم به شما تضمین بدهم که اگر سرویس با کیفیتی باشد، nginx در بخشی از پشته گنجانده شده است.